package com.activiti.ActivitiUtils.runtime;

import com.activiti.ActivitiUtils.bean.WrappedDeploymentBean;

import java.io.InputStream;

/**
 * create by chongyahhh
 * 2020/4/4
 */
public interface WrappedDeploymentRuntime {
    /**
     * 部署流程（zip）
     * 要放在processes文件夹下
     * 注意：zip里放的.png和.bpmn文件名应该一样
     * @param zipFileName ： zip文件名
     * @param deploymentName ： 部署名
     * @return
     */
    WrappedDeploymentBean deploymentWithZip(String zipFileName, String deploymentName);

    /**
     * 部署流程（bpmn）
     * 要放在processes文件夹下
     * @param bpmnFileName ： bpmn文件名
     * @param deploymentName ： 部署名
     * @return
     */
    WrappedDeploymentBean deploymentWithBpmn(String bpmnFileName, String deploymentName);

    /**
     * 删除已经部署的流程信息
     * 非级联（保留历史记录等信息）
     * @param deploymentId ： 部署id
     */
    void deleteProcessDefinition(String deploymentId);

    /**
     * 删除已经部署的流程信息
     * @param deploymentId ： 部署id
     * @param cascade ： 是否级联删除（true的话删的一点不剩）
     */
    void deleteProcessDefinition(String deploymentId, boolean cascade);

    /**
     * 获取流程图图片
     * @param processDefinitionKey ：画图时设的id
     * @return
     */
    InputStream getPngFile(String processDefinitionKey);
}
